home *** CD-ROM | disk | FTP | other *** search
-
- PAGE 60,132
- ;
- ; CKCOMPAQ : A program to check for the COMPAQ copyright notice in the BIOS ROM.
- ;
- ; Tom Brengle (BRENGLE%LLL@LLL.MFE)
- ;
- ; Lawrence Livermore National Laboratory
- ; P. O. Box 5511, L-630
- ; Livermore, California 94550
- ;
- ; CKCOMPAQ checks for COMPAQ Corp's copyright notice in the BIOS ROM. If it
- ; finds the correct notice, the program sets the ERRORLEVEL to zero and exits.
- ; Otherwise, it sets the ERRORLEVEL to one and exits. This program is useful
- ; for controlling the installation of hardware-dependent software at boot-up
- ; time through the use of IF ERRORLEVEL commands in the AUTOEXEC.BAT file.
- ;
- ; To build CKCOMPAQ :
- ;
- ; 1. Assemble CKCOMPAQ.
- ;
- ; MASM CKCOMPAQ;
- ;
- ; 2. Link CKCOMPAQ;
- ;
- ; LINK CKCOMPAQ;
- ;
- ; 3. Convert CKCOMPAQ.EXE to CKCOMPAQ.COM;
- ;
- ; EXE2BIN CKCOMPAQ.EXE CKCOMPAQ.COM
- ;
- ;
- ROM_BIOS_Code segment at 0F000h ; Locate the ROM BIOS code segment.
- org 0A000h
- ROM_Notice db 69d dup (?)
- ROM_BIOS_Code ends
-
- code_seg segment
- assume cs:code_seg
- org 100h
- Begin: jmp CkCOMPAQ
-
- COMPAQ_Notice db '(C) Copyright COMPAQ Computer Corporation, 1982, All rights reserved.',0
-
- CkCOMPAQ proc near
- assume ds:ROM_BIOS_Code ; Set up ROM BIOS data segment.
- mov bx,ROM_BIOS_Code
- mov ds,bx
-
- mov si,offset COMPAQ_Notice ; Set up pointers to the two strings.
- mov di,offset ROM_Notice
-
- Loop: mov al,cs:[si] ; Get the next char of the COMPAQ notice.
- cmp al,0 ; Is it the trailing null?
- je COMPAQ_OK ; Yes, then the strings match.
- cmp al,ds:[di] ; Otherwise, check it against the next char of the ROM notice.
- jne Not_COMPAQ ; If not the same, the strings are different.
- inc si ; Increment pointers...
- inc di
- jmp Loop ; ... and loop back for next char.
-
- Not_COMPAQ: ; Here if strings don't match.
- mov al,1 ; Set the error level to one.
- mov ah,4Ch ; Exit to DOS.
- int 21h
-
- COMPAQ_OK: ; Here if strings match.
- mov al,0 ; Set the error level to zero.
- mov ah,4Ch ; Exit to DOS.
- int 21h
-
- CkCOMPAQ endp
- code_seg ends
-
- end Begin
-